home *** CD-ROM | disk | FTP | other *** search
- /*
- File: CappuccinoContent.h
-
- Contains: Class to encapsulate the content of the Cappuccino part.
-
- Written by: Troy Gaul
-
- Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
- */
-
- #ifndef _CAPPUCCINOCONTENT_
- #define _CAPPUCCINOCONTENT_
-
- // -- Compiler/Preprocessor Switches --
-
- #ifndef _COMPILERDEFS_
- #include "CompDefs.h"
- #endif
-
- // -- OpenDoc Includes --
-
- #ifndef _ODTYPES_
- #include <ODTypes.h>
- #endif
-
- // -- Cappuccino Includes --
-
- #ifndef _REFCOUNTED_
- #include "RefCounted.h"
- #endif
-
- //------------------------------------------------------------------------------
- // Forward declarations
- //------------------------------------------------------------------------------
-
- class Cappuccino;
- class CCappuccinoContent;
- class CSettings;
-
- class ODStorageUnit;
-
- //------------------------------------------------------------------------------
- // CCappuccinoContent
- //------------------------------------------------------------------------------
-
- class CCappuccinoContent : public MRefCounted {
-
- friend ODBoolean operator == (const CCappuccinoContent& a,
- const CCappuccinoContent& b);
-
- public:
-
- CCappuccinoContent(Cappuccino* part);
-
- virtual ~CCappuccinoContent();
-
- // -- I/O --
-
- void InitCappuccinoContent(Environment* ev);
-
- void InitCappuccinoContent(Environment* ev, StringPtr);
-
- void InitCappuccinoContent(Environment* ev, ODStorageUnit*);
-
- void InitByTranslating(Environment* ev, ODStorageUnit* su, ODValueType from,
- ODValueType to);
-
- void Prepare(Environment* ev, ODStorageUnit*,
- ODValueType preferredKind);
-
- void Externalize(Environment* ev, ODStorageUnit*, ODDraftKey,
- ODValueType preferredKind = kODNULL);
-
- void ExternalizeOneKind(Environment* ev, ODStorageUnit*, ODDraftKey,
- ODValueType kind);
-
- // -- Promises --
-
- void Promise(Environment* ev, ODStorageUnit*, ODDraftKey,
- ODBoolean isForClipboard, Cappuccino* part);
-
- void Fulfill(Environment* ev, ODStorageUnit*, ODValueType);
-
- // -- Accessors --
-
- StringPtr GetString();
-
- ODBoolean IsEmpty();
-
- // -- Imaging --
-
- void Draw(Environment* ev, ODFacet* facet, CSettings* settings);
-
- // -- Static utility functions --
-
- // Kind support
-
- static ODBoolean IsKindSupported(Environment* ev, ODValueType);
-
- static ODBoolean HasSupportedKind(Environment* ev, ODStorageUnit*);
-
- static ODValueType RecoverKindPtr(Environment* ev, ODValueType valueType);
-
- // Fidelity ordering
-
- static ODValueType GetNextHighestFidelity(ODValueType currentKind = kODNULL);
-
- static ODValueType GetHighestFidelityKindSupported(Environment* ev,
- ODStorageUnit*);
-
- // I/O
-
- static ODValueType GetKindToInternalize(Environment* ev, ODStorageUnit*);
-
- // Determining supported content
-
- static ODBoolean HasValidContent(Environment* ev, ODStorageUnit*,
- ODBoolean* requiresTranslation = kODNULL);
-
- static ODBoolean HasValidFile(Environment* ev, ODStorageUnit*);
-
- // Translation
-
- static ODBoolean CanTranslate(Environment* ev, ODStorageUnit*);
-
- static ODBoolean GetTranslateKinds(Environment* ev, ODStorageUnit*,
- ODValueType* from = kODNULL,
- ODValueType* to = kODNULL);
-
- // Operations
-
- static void DoSetTextDialog(Environment* ev, ODFrame* frame, Cappuccino* part,
- CCappuccinoContent* currentContent);
-
- protected:
-
- // -- I/O --
-
- void InternalizeCappuccinoKind(Environment* ev, ODStorageUnit*);
-
- void ExternalizeCappuccinoKind(Environment* ev, ODStorageUnit*);
-
- #ifndef qSingleKindSupported
- void InternalizeTextData(Environment* ev, ODStorageUnit*);
-
- void ExternalizeTextData(Environment* ev, ODStorageUnit*);
-
- void InternalizeTextFile(Environment* ev, ODStorageUnit*);
- #endif
-
- void InternalizeTranslatedData(Environment* ev, ODStorageUnit*);
-
- private:
-
- Cappuccino* fPart;
- StringPtr fString;
- };
-
- ODBoolean operator == (const CCappuccinoContent& a, const CCappuccinoContent& b);
- ODBoolean operator != (const CCappuccinoContent& a, const CCappuccinoContent& b);
-
- //------------------------------------------------------------------------------
- // CSettings
- //------------------------------------------------------------------------------
-
- class CSettings : public MRefCounted {
-
- friend ODBoolean operator == (const CSettings& a, const CSettings& b);
-
- public:
-
- CSettings(Cappuccino* part);
-
- ~CSettings();
-
- // -- I/O --
-
- void InitSettings(Environment* ev);
-
- void InitSettings(Environment* ev, ODStorageUnit*);
-
- void Externalize(Environment* ev, ODStorageUnit*);
-
- // -- Accessors --
-
- ODSShort GetTextFont();
-
- ODUShort GetTextSize();
-
- ODBoolean GetDoesDrawFrame();
-
- // -- Settings --
-
- static void DoSettingsDialog(Environment* ev, ODFrame* frame,
- Cappuccino* part, CSettings* currentSettings);
-
- protected:
-
- void UseDefaults();
-
- private:
-
- Cappuccino* fPart;
- ODSShort fTextFont;
- ODUShort fTextSize;
- ODBoolean fDrawFrame;
- };
-
- ODBoolean operator == (const CSettings& a, const CSettings& b);
- ODBoolean operator != (const CSettings& a, const CSettings& b);
-
- //==============================================================================
- // Inlines
- //==============================================================================
-
- //------------------------------------------------------------------------------
- // CSettings
- //------------------------------------------------------------------------------
-
- inline ODSShort CSettings::GetTextFont()
- {
- return fTextFont;
- }
-
- inline ODUShort CSettings::GetTextSize()
- {
- return fTextSize;
- }
-
- inline ODBoolean CSettings::GetDoesDrawFrame()
- {
- return fDrawFrame;
- }
-
- #endif